Dynamic multi-user computer configuration settings

ABSTRACT

In an approach for managing user profiles, a computer identifies a first user profile and one or more additional user profiles, wherein the first user profile is active on a computing device. The computer receives streaming data. The computer receives a trigger wherein the received trigger includes biometric data. The computer identifies a second user profile from the identified one or more additional user profiles that is associated with the received trigger. The computer compares biometric data from the second user profile with the biometric data in the received trigger. The computer determines whether the biometric data matches, within a defined tolerance level, the biometric data in the second user profile.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of computerconfiguration settings, and more particularly to managing computerconfiguration settings in a multi-user environment.

Computers can be utilized by a single user or shared among multipleusers. Operating systems and/or application software can be enabled formulti-users, allowing more than one user to utilize the same computerthrough unique user accounts. User accounts enable individualutilization of a computer or network service by maintaining separateinformation in the form of a user profile about each user. The userprofile within the user account includes unique settings and preferences(e.g., personal preferences, desktop settings, backgrounds, networkconnections, etc.) specific to the particular user. The user profilesassociated with a user account can be either local (i.e., stored on thelocal hard disk of a computer) or roaming (i.e., stored on a centralizedfile server accessible from any network joined desktop computer).Roaming profiles allow users to log on from any computer on the samenetwork and have a consistent desktop experience whereas local profilesare specific to a single computer.

Multi-user systems require users to have authorization to access acomputer system and to enable the correct user account and user profilefor the user. Authorization is determined when a user provides validcredentials to the computer system to prove identity. Credentials may bea physical/tangible object (e.g., an access badge, near fieldcommunication), a piece of knowledge (e.g., a user name and passwordcombination), and/or a facet of a person's physical being (e.g., abiometric feature). Biometric authentication relates to humancharacteristics and traits such as fingerprints, facial recognition,iris recognition, retinal scans, voice, and hand geometry which arecaptured by the computer system. The captured data converts the actualimage or sound into a digital file which is stored and analyzed by acomputer or compared with other files in a database to verify identityand provide authorization to the appropriate user account. Near fieldcommunication allows devices to transfer electronically storedinformation automatically from tags (i.e., small microchips withantennas) by touch or proximity detection (e.g., radio-frequencyidentification (RFID)). The transferred data automatically identifiesand collects data about the object and enters the data directly into thecomputer system to determine the appropriate user account. Successfulauthorization of a user through the verification of credentials resultsin the loading of the user account and user profile providing theappropriate work environment determined by the user.

SUMMARY

Aspects of the present invention disclose a method, computer programproduct, and system for managing user profiles. The method includes oneor more computer processors identifying a first user profile and one ormore additional user profiles, wherein the first user profile is activeon a computing device. The method further includes one or more computerprocessors receiving streaming data. The method further includes one ormore computer processors receiving a trigger wherein the receivedtrigger includes biometric data. The method further includes one or morecomputer processors identifying a second user profile from theidentified one or more additional user profiles that is associated withthe received trigger. The method further includes one or more computerprocessors comparing biometric data from the second user profile withthe biometric data in the received trigger. The method further includesone or more computer processors determining whether the biometric datamatches, within a defined tolerance level, the biometric data in thesecond user profile.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating a multiple usercomputing environment, in accordance with an embodiment of the presentinvention;

FIG. 2 is a flowchart depicting operational steps of a user profilemanager program on a computing device within the multiple user computingenvironment of FIG. 1 for managing the active profiles accessing acomputing resource, in accordance with an embodiment of the presentinvention;

FIG. 3 illustrates operational steps of a trigger manager program on acomputing device within the multiple user computing environment of FIG.1 for switching between active user profiles accessing a computingresource, in accordance with an embodiment of the present invention; and

FIG. 4 is a block diagram of components of the computer of FIG. 1executing the user profile manager and trigger manager programs, inaccordance with an embodiment of the present invention.

DETAILED DESCRIPTION

Computing resources are configured based on a user profile associatedwith an active user account (i.e., the user, user account, or userprofile responsible for controlling the settings and activity of thecomputing resource). The configuration of the computing resource isdetermined by the personal preferences of the associated user toeffectively utilize the computing resource (e.g., font size, screenresolution, hardware orientation, etc.). At times, however, computingresources may be utilized by more than one user concurrently. Additionalusers may utilize similar profile settings as the active user (e.g.,both utilize default user profile settings). Users with similar userprofile settings may efficiently utilize the same computing resource asthe differences between user profiles are deemed to be negligible by theadditional user. Other additional users, however, may not utilizesimilar user profiles (e.g., visually impaired, physically challenged,right handedness, left handedness) and utilize noticeably different userprofile settings (e.g., enlarged font, screen resolution, peripheralsettings, etc.). Additional users with different user profile settingsmay need to implement modifications to the active user profile settingsor logoff the active user and logon as the new active user toefficiently utilize the same computer resource, which may be inefficientand time consuming, as recognized by embodiments of the presentinvention.

Embodiments of the present invention manage multiple user profiles on acomputing resource concurrently. Multiple user profiles are stored onthe computing resource. The user profiles are available to be utilizedfor the associated user when specified. Embodiments of the presentinvention utilize triggers to denote when a user profile change isspecified. The triggers are stored within the user profile allowing anefficient and targeted switch between user profiles. Additionally,embodiments of the present invention combine biometrics with triggers torecognize the appropriate user profile to dynamically change andsynchronize the triggering and switching of profiles between concurrentusers of a computing resource.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustrating amultiple user computing environment, generally designated 100, inaccordance with one embodiment of the present invention. FIG. 1 providesonly an illustration of one embodiment and does not imply anylimitations with regard to the environments in which differentembodiments may be implemented.

In the depicted embodiment, multiple user computing environment 100includes computing device 110 and network 130. Multiple user computingenvironment 100 may include additional computing devices, mobilecomputing devices, servers, computers, storage devices, or other devicesnot shown.

Network 130 may be a local area network (LAN), a wide area network (WAN)such as the Internet, a wireless local area network (WLAN), anycombination thereof, or any combination of connections and protocolsthat will support communications between computing device 110, othercomputing devices, and servers (not shown), in accordance withembodiments of the inventions. Network 130 may include wired, wireless,or fiber optic connections.

Computing device 110 may be a web server, or any other electronic deviceor computing system capable of processing program instructions andreceiving and sending data. In some embodiments, computing device 110may be a laptop computer, a tablet computer, a netbook computer, apersonal computer (PC), a desktop computer, a personal digital assistant(PDA), a smart phone, or any programmable electronic device capable ofcommunicating with network 130. In other embodiments, computing device110 may represent a server computing system utilizing multiple computersas a server system, such as in a cloud computing environment. Ingeneral, computing device 110 is representative of any electronic deviceor combination of electronic devices capable of executingmachine-readable program instructions as described in greater detailwith regard to FIG. 4, in accordance with embodiments of the presentinvention. Computing device 110 contains user interface 112, storagedevice 120, user one profile 122, user two profile 124, active user datarepository 126, user profile manager 200, and trigger manager 300.

User interface 112 is a program that provides an interface between auser of computing device 110 and a plurality of applications that resideon computing device 110 and/or may be accessed over network 130. A userinterface, such as user interface 112, refers to the information (e.g.,graphic, text, sound) that a program presents to a user, and the controlsequences the user employs to control the program. A variety of types ofuser interfaces exist. In one embodiment, user interface 112 is agraphical user interface. A graphical user interface (GUI) is a type ofinterface that allows users to interact with peripheral devices (i.e.,external computer hardware that provides input and output for acomputing device such as a keyboard and mouse) through graphical iconsand visual indicators as opposed to text-based interfaces, typed commandlabels, or text navigation. User interface 112 sends and receivesinformation to user profile manager 200 and trigger manager 300. Userinterface 112 displays information to a user through display device 113.A display device is an output device that visually conveys text,graphics, and video information (i.e., any device capable of displayinga received image, e.g., laptop screen, computer monitor). In oneembodiment, user interface 112 receives data through webcam 114 (e.g.,built-in computer hardware, universal serial bus (USB) connected videocamera). A webcam refers to a video camera that feeds or streams images(i.e., provides frequently updated content) in real time to, or through,a computer as a streaming video. The digitized and encoded streamingvideo may be saved, viewed, or sent to other network systems for furtherutilization. In some embodiments, user interface 112 receives data froma user through keyboard 115 (e.g., hardwired, wireless) to inputinformation into computing device 110. In another embodiments, userinterface 112 receives data from a user through mouse 116. A mouse is apointing device that detects two-dimension motion relative to a surfacewhich allows for fine control of a graphical user interface. In someother embodiment, user interface 112 receives audio data (i.e., soundsin the air via streaming audio) through microphone 117 (e.g., built-inor add-on microphone hardware). Computing device 110 may utilize voicerecognition software to analyze the received audio data to identify theuser speaking utilizing voice biometrics (i.e., speaker recognition) andwhat is being said (i.e., speech recognition).

Storage device 120 can be implemented with any type of storage devicethat is capable of storing data that may be accessed and utilized bycomputing device 110. In one embodiment, storage device 120 resides oncomputing device 110. In other embodiments, storage device 120 mayreside on another server or another computing device connected overnetwork 130, provided that storage device 120 is accessible to computingdevice 110, user profile manager 200, and trigger manager 300. Storagedevice 120 includes user one profile 122, user two profile 124, andactive user data repository 126.

User one profile 122 comprises a user specific data file. User oneprofile 122 may include unique settings and preferences (e.g., screenresolution, magnification, mouse orientation, keyboard configuration,etc.), biometric data (e.g., facial characteristics, fingerprints, handgeometry, voice with respect to tones, pitch, and cadence), and triggers(e.g., gestures, voice commands, keystroke combinations, etc.) for auser of computing device 110. Biometric data comprises measureablebiological characteristics associated with an individual which can beautomatically checked to provide authentication. User one profile 122supplies the user specific data files for the identified user ofcomputing device 110 to user profile manager 200 and trigger manager300. In the depicted embodiment, user one profile 122 is stored locallyon storage device 120 (e.g., a hard disk) of computing device 110. Inanother embodiment, user one profile 122 may reside on a server, anothercomputing device, or in a database (e.g., roaming profile) connectedover network 130 (not shown), provided user one profile 122 isaccessible to computing device 110, user profile manager 200, andtrigger manager 300. In some other embodiment, user one profile 122 maynot initially exist as the user is new (i.e., user one profile 122 isnot found on storage device 120 or over network 130). The operatingsystem on computing device 110 creates user one profile 122 on storagedevice 120 and assigns a system default profile and defaultconfiguration settings. In one embodiment, user one profile 122 is thenmodified by the new user (i.e., customizes the default profileconfiguration settings to personal preferences). In another embodiment,the new user does not modify user one profile 122. User two profile 124is similar to user one profile 122 except user two profile 124represents a second different user of computing device 110. The numberof user profiles are not limited to user one profile 122 and user twoprofile 124; additional user profiles may exist or be added that are notcurrently shown in FIG. 1. For the purpose of an example, an initialuser of computing device 110 is associated with user one profile 122,and a second user is associated with user two profile 124.

Active user data repository 126 comprises a lookup table of the activeuser profile names and associated triggers for utilizing computingdevice 110. A lookup table is an array that replaces runtime computation(i.e., time during which a program executes information processing) withan indexing operation. The array comprises a systematic collection ofelements (e.g., values, variables) in a computing resource as organizeddata for efficient access by other computing devices and applicationsthrough an index. In one embodiment, active user data repository 126 isstored within storage device 120 on computing device 110. In anotherembodiment, active user data repository 126 may reside on another serveror another computing device connected over network 130, provided thatactive user data repository 126 is accessible to computing device 110,user profile manager 200, and trigger manager 300.

User profile manager 200 is a software component which manages multipleuser profiles on computing device 110. User profile manager 200 accessesthe user profiles and triggers for utilization by trigger manager 300.In some embodiments, user profile manager 200 may assist in the creationof a new trigger for a user profile when a trigger is not defined in theuser profile. User profile manager 200 may store multiple active userprofile references (e.g., profile name, storage location) and associatedtriggers in active user data repository 126. In one embodiment, userprofile manager 200 resides on computing device 110. In anotherembodiment, user profile manager 200 may reside on a server or onanother computing device connected over network 130, provided userprofile manager 200 is accessible to computing device 110, user oneprofile 122, user two profile 124, active user data repository 126, andtrigger manager 300.

Trigger manager 300 is a software component which manages the transitionfrom one user profile to another user profile accessing computing device110 in response to a trigger. Trigger manager 300 may receive triggersthrough user interface 112, including but not limited to, webcam 114,keyboard 115, mouse 116, and microphone 117. Trigger manager 300determines the correct user profile associated with the defined trigger.Trigger manager 300 controls the transition from the existing userprofile to the new user profile associated with a unique trigger at thetime a trigger is initiated. In one embodiment, trigger manager 300resides on computing device 110. In another embodiment, trigger manager300 may reside on a server or on another computing device connected overnetwork 130, provided trigger manager 300 is accessible to computingdevice 110, user one profile 122, user two profile 124, active user datarepository 126, and user profile manager 200.

FIG. 2 is a flowchart depicting operational steps of user profilemanager 200 executing within the multiple user computing environment 100of FIG. 1, in accordance with an embodiment of the present invention. Inone embodiment, user profile manager 200 may initiate after an initialuser completes login on computing device 110. Login refers to the useraccount credentials (e.g., combination user id and password) presentedby the user, which identify and authenticate the user prior to providingaccess to a computer system. In another embodiment, user profile manager200 may initiate at any point upon receipt of a user request throughuser interface 112 to enable the detection and import of new profilesinto user profile manager 200. In an example embodiment, initially, auser is successfully logged into computing device 110 with user oneprofile 122 at the start of user profile manager 200.

In step 202, user profile manager 200 enables new user detection mode.User profile manager 200 receives a request from a user through userinterface 112 to enable new user detection mode. In response to thereceipt of the user request, user profile manager 200 initiates. Userprofile manager 200 receives data inputs (e.g., RFID, streaming video,keystrokes, user selection, streaming audio) through user interface 112(e.g., webcam 114, keyboard 115, mouse 116, and microphone 117). Whenenabled, user profile manager 200 may accept new users and profiles forcomputing device 110. New user profiles may not be added to computingdevice 110 when user profile manager 200 does not enable new user andprofile detection.

In decision 204, user profile manager 200 determines if a new user isdetected. User profile manager 200 monitors the received data inputs forindications of a new user (e.g., detection of a new RFID tag, userrequest to add user). In one embodiment, user profile manager 200detects a new user through automatic identification and data capture.Automatic identification and data capture refers to methods ofautomatically identifying objects, collecting data, and entering thedata directly into a computer (e.g., bar codes, radio frequencyidentification, biometrics, magnetic strips, smart cards, and voicerecognition). In one embodiment, user profile manager 200 detects a newuser through webcam 114. User profile manager 200 identifies a new userwithin the field of view (i.e., area that is visible through an opticalinstrument) utilizing facial recognition software. Facial recognitionsoftware is a computer application for automatically identifying aperson from a video source (e.g., webcam 114). In an example embodiment,a second user enters into the field of view of webcam 114. User profilemanager 200 analyzes the video data from webcam 114 with facialrecognition software. User profile manager 200 receives two differentfacial images from the analyzed video source. User profile manager 200compares the two facial images with the stored facial image within userone profile 122. User profile manager 200 determines one of the facialimages matches user one profile 122, and the second facial image is anew user (i.e., does not match user one profile 122). In anotherembodiment, user profile manager 200 detects a new user throughmicrophone 117. User profile manager 200 identifies a new user withinthe audio file processed with voice recognition software (i.e., a secondvoice based on tone, pitch, and cadence is detected within the audiofile which does not match the voice recording stored in user one profile122). In some other embodiment, user profile manager 200 detects a newuser through keyboard 115 (e.g., new user enters different logoninformation in response to a prompt). In yet another embodiment, userprofile manager 200 detects a new user through mouse 116 (e.g., aselection is made within a GUI interface through a series of mouseactions to add a user). In yet some other embodiment, user profilemanager 200 detects a new user through near filed communication (e.g.,RFID, tags) with computing device 110.

If user profile manager 200 determines a new user is detected (decision204, yes branch), user profile manager 200 continues to decision 206. Ifuser profile manager 200 determines a new user has not been detected(decision 204, no branch), user profile manager 200 continues todecision 222. In decision 222, user profile manager 200 determineswhether to exit new user detection mode or resume monitoring for newusers.

In decision 206, user profile manager 200 determines whether to add thenew user profile. User profile manager 200 determines whether to add thenew user profile to computing device 110. User profile manager 200provides a request to add a new user to the potential active users ofcomputing device 110 through user interface 112. In one embodiment, userprofile manager 200 may provide a message through a GUI interface ondisplay device 113 (e.g., message box with selectable “yes” and “no”icons, instructions to press a specific key, etc.). In anotherembodiment, user profile manager 200 may provide an audio message to adda user. User profile manager 200 awaits a response through userinterface 112 to add or refuse the new user prior to continuing. In oneembodiment, user profile manager 200 receives an approval indicationthrough user interface 112 to add the new user (e.g., vocal approval,hand gesture, selection of an icon, keyboard entry, etc.). For example,in a multiple user computer laboratory environment, user profile manager200 detects a new user within the field of view provided by webcam 114.The new user is a visually impaired co-worker, necessitating differentprofile settings to effectively work on computing device 110 with theexisting user. User profile manager 200 receives an approval indicationto add the new user profile as an additional potential active user ofcomputing device 110. In another embodiment, user profile manager 200receives a rejection indication through user interface 112 to not addthe new user.

If user profile manager 200 determines to add the new user profile(decision 206, yes branch), then user profile manager 200 continues tostep 208. If user profile manager 200 determines not to add a new userprofile (decision 206, no branch), then user profile manager 200continues to decision 222. In decision 222, user profile manager 200determines whether to exit profile detection mode or resume monitoringfor new users.

In step 208, user profile manager 200 identifies and retrieves the newuser profile. User profile manager 200 searches for available userprofiles. In one embodiment, user profile manager 200 searches foravailable user profiles within storage device 120. In anotherembodiment, user profile manager 200 searches for roaming user profilesover network 130. In the depicted embodiment, user profile manager 200identifies user one profile 122 and user two profile 124 within storagedevice 120. In one embodiment, user profile manager 200 searches userone profile 122 and user two profile 124 for the credentials associatedwith the new user account logon process (e.g., combination user name andpassword). In another embodiment, user profile manager 200 searches userone profile 122 and user two profile 124 for biometric data associatedwith the new user (e.g., fingerprint, voice recognition, facialrecognition). User profile manager 200 evaluates the new userinformation (e.g., credentials, biometric data) with respect to thestored information in user one profile 122 and user two profile 124. Inone embodiment, user profile manager 200 is unable to determine acorrect user profile (i.e., user profile does not exist or could not beverified). User profile manager 200 creates a new user profile utilizingthe operating system default user profile. In another embodiment, userprofile manager 200 determines the correct user profile associated withthe provided new user credentials. In an example, user profile manager200 determines the information stored in user two profile 124 matchesthe provided new user information requesting access to computing device110. Therefore, user profile manager 200 identifies user two profile 124as the new user. In one embodiment, user profile manager 200 retrievesthe identified user profile (e.g., user two profile 124) from storagedevice 120. In another embodiment, user profile manager 200 retrievesthe identified user profile from roaming user profiles over network 130.When the user profile is a roaming profile, user profile manager 200stores a copy of the roaming user profile for the new user withinstorage device 120.

In decision 210, user profile manager 200 determines if triggers areundefined within the identified user profile. A trigger is a definedaction an operating system or application monitors for, which a user canperform to initiate a response. User profile manager 200 searches theidentified user profile (e.g., user two profile 124) for definedtriggers (e.g., facial recognition, gestures, keystroke combinations,voice commands, etc.). In one embodiment, the identified user profile(e.g., user two profile 124) contains at least one defined trigger. Inanother embodiment, the identified user profile (e.g., user two profile124) does not have a defined trigger.

If user profile manager 200 determines the triggers are undefined withinthe identified user profile (decision 210, yes branch), user profilemanager 200 continues to step 214. If user profile manager 200determines the triggers are defined within the identified user profile(decision 210, no branch), user profile manager 200 continues todecision 212.

In decision 212, user profile manager 200 determines if a new trigger isto be defined. In one embodiment, responsive to determining that thetriggers are defined (decision 210, no branch), user profile manager 200determines if a new trigger is to be defined. If user profile manager200 determines a new trigger is to be defined (decision 212, yesbranch), user profile manager 200 continues to step 214. If user profilemanager 200 determines a new trigger is not to be defined (decision 212,no branch), user profile manager 200 continues to decision 218.

In step 214, user profile manager 200 configures a trigger. In anexample embodiment, responsive to determining that the triggers areundefined (decision 210, yes branch) or responsive to determining todefine a new trigger (decision 212, yes branch), user profile manager200 configures a trigger (e.g., through interactions with a user viauser interface 112). In one embodiment user profile manager 200configures a trigger through graphical user interface on display device113. In another embodiment, user profile manager 200 may configure atrigger through a series of vocalized instructions. In some otherembodiment, user profile manager 200 may suggest an appropriate triggerdefinition based on information within the user profiles (e.g., user twoprofile 124). For example, user two profile 124 may comprise preferencesfor enlarged graphics and text to voice software indicating a visualimpairment. User profile manager 200 may suggest a vocal trigger as thevocal trigger may be easily utilized by the visually impaired user. Inyet another embodiment, user profile manager 200 may suggest a triggerbased upon an assessment of the physical user environment provided bywebcam 114. For example, a user trigger is identified by a right handmovement, but the right hand side of the user is not in the field ofview of webcam 114. User profile manager 200 may suggest a new triggerbased on a left hand movement which is within the field of view ofwebcam 114. In one embodiment, user profile manager 200 configures atleast one keystroke from keyboard 115 as a trigger. In anotherembodiment, user profile manager 200 configures a sound input (e.g.,vocalization, word, sounds) through microphone 117 as a trigger. In someother embodiment, user profile manager 200 configures a video input(e.g., facial expression, body movement, gesture) through webcam 114 asa trigger. In yet another embodiment, user profile manager 200configures a mouse action (e.g., motion, pattern) through mouse 116 as atrigger.

In step 216, user profile manager 200 updates the identified userprofile with the trigger. User profile manager 200 updates theidentified user profile with the defined trigger. In one embodiment,user profile manager 200 replaces the previous defined trigger with thenew defined trigger. In another embodiment, user profile manager 200adds a new trigger to the identified user profile (e.g., user oneprofile 122, user two profile 124).

In step 218, user profile manager 200 stores the identified user profileinformation. In one embodiment, user profile manager 200 stores theupdated identified user profile (e.g., user one profile 122, user twoprofile 124, etc.), including the updated trigger information, instorage device 120. In another embodiment, when the updated identifieduser profile is also a roaming profile, user profile manager 200 maystore the updated identified user profile to a server, another computingdevice, or in a database connected over network 130 (not shown), and instorage device 120. Additionally, user profile manager 200 stores theuser profile name (e.g., user one profile 122), location (e.g., storagedevice 120), and the associated trigger in active user data repository126.

In step 220, user profile manager 200 evaluates and recommends anoptimal physical user environment configuration. The physical userenvironment configuration refers to the location of users relative toother users and computing device 110. User profile manager 200 evaluatesthe streaming video provided with respect to the user profiles andtriggers. In one embodiment, user profile manager 200 evaluates thephysical user environment and determines that the environment isoptimized (i.e., physical user positions relative to other users andcomputing device 110 based on analysis of user profile settings andtriggers meet the needs of the users), and user profile manager 200 doesnot recommend changes to the physical positions of the users. In someother embodiment, user profile manager 200 evaluates the physical userenvironment and determines that the environment is not optimized, anduser profile manager 200 recommends changes to the physical position ofusers to create an optimal physical user environment. For example, userone profile 122 profile settings are right handed orientation, and usertwo profile 124 profile settings are left handed orientation, both usersutilize triggers via the mouse. User profile manager 200 may suggest theuser associated with user two profile 124 move from a current positionon the left of the user of user one profile 122 to the right of user oneprofile 122 to share peripheral devices (i.e., external computerhardware that provides input and output for a computing device) such asmouse 116. User profile manager 200 provides recommendations to theusers through user interface 112 (e.g., text message, visual depiction,voice message). While user profile manager 200 may providerecommendation, the implementation of the recommendation is userdependent.

In decision 222, user profile manager 200 determines if exit new userdetection mode is selected. User profile manager 200 determines if theexisting user requests to no longer accept additional new users oncomputing device 110. If user profile manager 200 determines the userselects to exit new user detection mode (decision 222, yes branch), userprofile manager 200 continues to step 224. If user profile manager 200determines the user does not request to exit new user detection mode(decision 22, no branch), then user profile manager 200 returns todecision 204 and determines if a new user is detected.

In step 224, user profile manager 200 disables new user detection. Inone embodiment, after disabling new user detection mode, user profilemanager 200 exits execution and completes and will no longer detect newusers. For example, if a new user enters the field of view of webcam114, the new user will not be included in any further actions. Userprofile manager 200 can be terminated at any point in the process by theactive user. User profile manager 200 can also be initiated at any timeby the active user to acquire new users.

FIG. 3 is a flowchart depicting operational steps of trigger manager 300executing within the multiple user computing environment 100 of FIG. 1,in accordance with an embodiment of the present invention. Triggermanager 300 initiates in response to identifying more than one userwithin user profile manager 200 utilizing computing device 110. In oneembodiment, trigger manger 300 initiates after completion of userprofile manager 200. In another embodiment, trigger manager 300initiates whenever user profile manager 200 is not enabled to detect newusers.

In step 302, trigger manager 300 loads the initial user id profileconfiguration. Trigger manager 300 utilizes user one profile 122 (i.e.,first user logged into computing device 110) for the initialconfiguration of computing device 110. Trigger manager 300 recognizesthe user of the loaded profile (e.g., user one profile 122) to be theactive user of computing device 110. Trigger manager 300 loads thestored preferences and settings for the initial user profile (e.g., userone profile 122).

In decision 304, trigger manager 300 determines if a trigger hasoccurred. Trigger manager 300 receives input activity (e.g., streamingaudio files, webcam video feed) through user interface 112. Triggermanager 300 analyzes the received input activity for a defined trigger(i.e., triggers stored in active user data repository 126) to occur. Inone embodiment, trigger manager 300 receives a trigger through webcam114. For example, the second user associated with user two profile 124makes a hand gesture which is captured by webcam 114. Trigger manager300 identifies the hand gesture as a defined trigger within active userdata repository 126. In another embodiment, trigger manager 300 receivesa trigger as a sound or phrase (e.g., phrase of “Switch to Charlie,”tapping sequence, whistle, etc.) through microphone 117. In some otherembodiment, trigger manager 300 receives a trigger though keyboard 115(e.g., sequence of keystrokes). In yet some other embodiment, triggermanager 300 receives a trigger through mouse 116 (e.g., pattern movementdrawing a large “X” from corner to corner on display device 113).

If user trigger manager 300 determines a trigger has occurred (decision304, yes branch), then trigger manager 300 continues to step 306. Iftrigger manager 300 determines a trigger has not occurred (decision 304,no branch), then trigger manager 300 continues to decision 314.

In step 306, trigger manager 300 identifies the user profile associatedwith the trigger. In one embodiment, in response to determining that atrigger has occurred (decision 304, no branch), trigger manager 300identifies the user profile that corresponds to the received trigger.Trigger manager 300 searches active user data repository 126 for thereceived defined trigger. Trigger manager 300 matches the receiveddefined trigger with the stored defined trigger associated with one ofthe multiple active user profiles stored within active user datarepository 126. By matching the received and stored defined trigger,trigger manager 300 identifies the next active user profile (e.g., usertwo profile 124).

In decision 308, trigger manager 300 determines if the trigger matchesthe biometric data stored in the user profile. Within the user profile,biometric data (e.g., facial characteristics, fingerprints, voice,retina, etc.) is stored relative to the user. Trigger manager 300accesses the identified next active user profile (e.g., user two profile124) on storage device 120. Trigger manager 300 utilizes the storedbiometric data in conjunction with the defined trigger to determine ifthe user initiating the defined trigger and the creator of the definedtrigger match. For example, a second user (e.g., user two profile 124)invokes a trigger through a vocalization of a phrase. Trigger manager300 determines which user profile in active user data repository 126 isassociated with utilizing the phrase as a trigger phrase (e.g., user twoprofile 124). Trigger manager 300 then accesses user two profile 124 forthe corresponding biometric data from storage device 120. Within usertwo profile 124, biometric voice recordings of the utilized triggerphrase are stored. Trigger manager 300 may compare aspects such as tone,pitch, and cadence of the new audio recording of the trigger phrase withthe stored recorded trigger phrase in user two profile 124. If thecomparison between the comparable aspects of the two recordings match,within a tolerance as set within the parameters of the voice recognitionsoftware, then trigger manager 300 determines the user is the same asthe creator of the trigger (i.e., is the user corresponding to user twoprofile 124). If the comparison fails (e.g., one voice phrase is female,the other is male), then trigger manger 300 determines the trigger andthe initiator of the trigger are not the same (i.e., is not the usercorresponding to user two profile 124).

If user trigger manager 300 determines the trigger matches the biometricdata stored in the user profile (decision 308, yes branch), then triggermanager 300 continues to step 310. If trigger manager 300 determines thetrigger does not match the biometric data stored in the user profile(decision 308, no branch), then trigger manager 300 continues todecision 314.

In step 310, trigger manager 300 loads the identified next active userprofile. Trigger manager 300 instructs computing device 110 to replacethe existing active user (e.g., user one profile 122) with the newactive user (e.g., user two profile 124). Trigger manager 300 identifiesthe new active user profile name (e.g., user two profile 124) tocomputing device 110 as the active user. Computing device 110 updatesthe existing profile settings to the identified next active user profilesettings (e.g., user one profile 122 settings are replaced by thesettings for user two profile 124). For example, when initially viewed,display device 113 utilizes the existing profile (e.g., user one profile122) comprising display settings of small (e.g., no magnification), andbasic contrast (e.g., light colored background with grey text).Computing device 110 then loads the active user profile settings (e.g.,user two profile 124) comprising display settings as larger (e.g.,magnification by fifty percent) and high contrast (e.g., blackbackground with white font). Information now viewed on display device113 is magnified by fifty percent from the previous view and has a highcontrast.

In step 312, trigger manager 300 resumes computing tasks with the loadedprofile configuration. In one embodiment, computing device 110 is nowconfigured for a different user (e.g., user profile switched from userone profile 122 to user two profile 124). The user associated with usertwo profile 124 resumes computing tasks on computing device 110 with theappropriate settings for the specified user.

In decision 314, trigger manager 300 determines if trigger monitoringhas been discontinued. In one embodiment, trigger manager 300 determinesa system log off has been implemented on computing device 110 (i.e.,system is shutdown) and exits trigger monitoring. In another embodiment,trigger manager 300 determines user profile manager 200 has been enabledand exits trigger monitoring (decision 314, yes branch). In some otherembodiment, trigger monitoring is not discontinued (decision 314, nobranch), and trigger manager 300 resumes at decision 304 to monitor foradditional triggers.

FIG. 4 depicts a block diagram of components of multiple user computingenvironment 400 which is representative of multiple user computingenvironment 100, in accordance with an illustrative embodiment of thepresent invention. It should be appreciated that FIG. 4 provides only anillustration of one implementation and does not imply any limitationswith regard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environment may be made.

Multiple user computing environment 400 includes communications fabric402, which provides communications between computer processor(s) 404,memory 406, persistent storage 408, communications unit 410, andinput/output (I/O) interface(s) 412. Communications fabric 402 can beimplemented with any architecture designed for passing data and/orcontrol information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system. For example,communications fabric 402 can be implemented with one or more buses.

Memory 406 and persistent storage 408 are computer readable storagemedia. In this embodiment, memory 406 includes random access memory(RAM) 414 and cache memory 416. In general, memory 406 can include anysuitable volatile or non-volatile computer readable storage media.

User profile manager 200, trigger manager 300, user one profile 122,user two profile 124, and active user data repository 126 are stored inpersistent storage 408 for execution and/or access by one or more of therespective computer processors 404 via one or more memories of memory406. In this embodiment, persistent storage 408 includes a magnetic harddisk drive. Alternatively, or in addition to a magnetic hard disk drive,persistent storage 408 can include a solid state hard drive, asemiconductor storage device, read-only memory (ROM), erasableprogrammable read-only memory (EPROM), flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 408 may also be removable. Forexample, a removable hard drive may be used for persistent storage 408.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage408.

Communications unit 410, in these examples, provides for communicationswith other data processing systems or devices, including resources of anenterprise grid and client devices. In these examples, communicationsunit 410 includes one or more network interface cards. Communicationsunit 410 may provide communications through the use of either or bothphysical and wireless communications links. User profile manager 200,trigger manager 300, user one profile 122, user two profile 124, andactive user data repository 126 may be downloaded to persistent storage408 through communications unit 410.

I/O interface(s) 412 allows for input and output of data with otherdevices that may be connected to server computer 102. For example, I/Ointerface 412 may provide a connection to external devices 418 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 418 can also include portable computer readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data used to practiceembodiments of the present invention, e.g., user profile manager 200,trigger manager 300, user one profile 122, user two profile 124, andactive user data repository 126, can be stored on such portable computerreadable storage media and can be loaded onto persistent storage 408 viaI/O interface(s) 412. I/O interface(s) 412 also connect to a display420.

Display 420 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A computer program product for managing userprofiles, the computer program product comprising: one or more computerreadable storage media and program instructions stored on the one ormore computer readable storage media, the program instructionscomprising: program instructions to identify a first user profile andone or more additional user profiles, wherein the first user profile isactive on a computing device; program instructions to receive streamingdata; program instructions to receive a trigger wherein the receivedtrigger includes biometric data and an action; program instructions todetermine a match between the received trigger and a defined triggerwithin a repository; program instructions to identify a second userprofile from the identified one or more additional user profiles thatcorresponds to the determined match between the received trigger and thedefined trigger within the repository; program instructions to comparebiometric data from the second user profile from the repository with thebiometric data in the received trigger; program instructions todetermine whether the biometric data in the received trigger matches,within a defined tolerance level, the biometric data in the second userprofile; responsive to determining that the biometric data and thedefined trigger associated with the second user profile match thereceived trigger and the biometric data in the received trigger withinthe defined tolerance level, program instructions to transform the firstuser profile to the second user profile on the computing device byupdating profile settings of the first user profile to profile settingsof the second user profile; program instructions to receive a streamingvideo that includes a plurality of users of the computing device whereinthe plurality of users includes at least a first user corresponding tothe first user profile and a second user corresponding to the seconduser profile; program instructions to determine a physical location forthe plurality of users within a physical environment depicted by thestreaming video; program instructions to identify user profilescorresponding to the plurality of users utilizing biometric dataassociated with the plurality of users; program instructions to analyzethe user profiles corresponding to the plurality of users and thephysical location for the plurality of users; program instructions todetermine an optimal physical location of the plurality of users basedon the analysis of the user profiles corresponding to the plurality ofusers and the physical location of the plurality of users, wherein theoptimal physical location refers to the physical location of the firstuser relative to the second user and the computing device; and programinstructions to recommend a configuration for the physical environmentfor the plurality of users, wherein the recommended configurationidentifies changes to the physical position of the first user relativeto the second user and the computing device.
 2. The computer programproduct of claim 1 wherein the first user profile and the second userprofile are separate user profiles, including at least computerconfiguration settings and preferences, biometric data, and a definedtrigger.
 3. The computer program product of claim 1, wherein thereceived streaming data includes one or more of: biometric data anddefined triggers received through streaming video from a video recordingdevice, biometric data, and defined triggers received through streamingaudio from a sound recording device, keystrokes from a computerkeyboard, and mouse actions from a computer mouse.
 4. The computerprogram product of claim 1, further comprising program instructions to:determine if at least one defined trigger is stored within the firstuser profile; in response to determining that there is not at least onedefined trigger stored within the first user profile, analyze thestreaming data utilizing computer configuration settings and preferencesstored in the first user profile; and recommend a trigger for the firstuser profile based on the analyzed streaming data, computerconfiguration settings, and user preferences stored in the first userprofile.
 5. The computer program product of claim 1, wherein therepository includes one or more defined triggers wherein each of the oneor more defined triggers includes an association with one of: the firstuser profile and the one or more additional user profiles.
 6. Thecomputer program product of claim 1, wherein the received triggerincludes the biometric data and the action is one biometric data and oneaction selected from a group consisting of: a facial recognition, agesture, a keystroke combination, a sound, and a voice command.
 7. Thecomputer program product of claim 6, wherein the gesture is a bodymovement received by a webcam.
 8. The computer program product of claim6, wherein the sound is one sound selected from a group consisting of atapping sequence received by a sound recording device and a whistlereceived by the sound recording device.
 9. The computer program productof claim 1, wherein to identify the first user profile and one or moreadditional user profiles further comprises program instructions to:receive login account credentials that identify the first user and thefirst user profile; identify a new user wherein the new user is notlogged in to the computing device; provide a request to the first userto add a new user profile corresponding to the identified new user;receive a response to the provided request wherein the response is anapproval to add the new user profile; receive biometric data from thenew user; identify the new user profile from the one or more additionaluser profiles based on the received biometric data from the new user;and add the identified new user profile to the computing device.
 10. Acomputer system for managing user profiles, the computer systemcomprising: one or more computer processors; one or more computerreadable storage media; program instructions stored on the computerreadable storage media for execution by at least one of the one or moreprocessors, the program instructions comprising: program instructions toidentify a first user profile and one or more additional user profiles,wherein the first user profile is active on a computing device; programinstructions to receive streaming data; program instructions to receivea trigger wherein the received trigger includes biometric data and anaction; program instructions to determine a match between the receivedtrigger and a defined trigger within a repository; program instructionsto identify a second user profile from the identified one or moreadditional user profiles that corresponds to the determined matchbetween the received trigger and the defined trigger within therepository; program instructions to compare biometric data from thesecond user profile from the repository with the biometric data in thereceived trigger; program instructions to determine whether thebiometric data in the received trigger matches, within a definedtolerance level, the biometric data in the second user profile;responsive to determining that the biometric data and the definedtrigger associated with the second user profile match the receivedtrigger and the biometric data in the received trigger within thedefined tolerance level, program instructions to transform the firstuser profile to the second user profile on the computing device byupdating profile settings of the first user profile to profile settingsof the second user profile program instructions to receive a streamingvideo that includes a plurality of users of the computing device whereinthe plurality of users includes at least a first user corresponding tothe first user profile and a second user corresponding to the seconduser profile; program instructions to determine a physical location forthe plurality of users within a physical environment depicted by thestreaming video; program instructions to identify profiles correspondingto the plurality of users utilizing biometric data associated with theplurality of users; program instructions to analyze the user profilescorresponding to the plurality of users and the physical location forthe plurality of users; program instructions to determine an optimalphysical location of the plurality of users based on the analysis of theuser profiles corresponding to the plurality of users and the physicallocation of the plurality of users, wherein the optimal physicallocation refers to the physical location of the first user relative tothe second user and the computing device; and program instructions torecommend a configuration for the physical environment for the pluralityof users, wherein the recommended configuration identifies changes tothe physical position of the first user relative to the second user andthe computing device.
 11. The computer system of claim 10, wherein thefirst user profile and the second user profile are separate userprofiles, including at least computer configuration settings andpreferences, biometric data, and a defined trigger.
 12. The computersystem of claim 10, wherein the received streaming data includes one ormore of: biometric data and defined triggers received through streamingvideo from a video recording device, biometric data, and definedtriggers received through streaming audio from a sound recording device,keystrokes from a computer keyboard, and mouse actions from a computermouse.
 13. The computer system of claim 10, further comprising programinstructions, stored on the one or more computer readable storage media,to: determine if at least one defined trigger is stored within the firstuser profile; in response to determining that there is not at least onedefined trigger stored within the first user profile, analyze thestreaming data utilizing computer configuration settings and preferencesstored in the first user profile; and recommend a trigger for the firstuser profile based on the analyzed streaming data, computerconfiguration settings, and user preferences stored in the first userprofile.
 14. The computer system of claim 10, wherein the repositoryincludes one or more defined triggers wherein each of the one or moredefined triggers includes an association with one of: the first userprofile and the one or more additional user profiles.
 15. The computersystem of claim 10, wherein the received trigger includes the biometricdata and the action is one biometric data and one action selected from agroup consisting of: a facial recognition, a gesture, a keystrokecombination, a sound, and a voice command.
 16. The computer system ofclaim 15, wherein the gesture is a body movement received by a webcam.17. The computer system of claim 15, wherein the sound is one soundselected from a group consisting of a tapping sequence received by asound recording device and a whistle received by the sound recordingdevice.
 18. The computer system of claim 10 wherein to identify thefirst user profile and one or more additional user profiles furthercomprises program instructions, stored on the one or more computerreadable storage media, to: receive login account credentials thatidentify the first user and the first user profile; identify a new userwherein the new user is not logged in to the computing device; provide arequest to the first user to add a new user profile corresponding to theidentified new user; receive a response to the provided request whereinthe response is an approval to add the new user profile; receivebiometric data from the new user; identify the new user profile from theone or more additional user profiles based on the received biometricdata from the new user; and add the identified new user profile to thecomputing device.